package com.yinxin.wudasuanfa.huaweiod;

/**
 * @author yinxin
 * @version 1.0
 * @Description: 最长子序列：给定一个数组array和一个数target，如果array存在连续的几个数相加等于target，返回这几个数的最大个数，否则返回-1
 * @date 2022/5/911:17
 */
public class Exercise6 {
    public static void main(String[] args) {
        int target = 9;
        int[] arr = {11, 13, 15, 14, 8, 18, 19};
        int num = maxNum(arr, target);
        System.out.println(num);
    }

    public static int maxNum(int[] arr, int target) {
        int num = 0;
        for (int i = 0; i < arr.length; i++) {
            int tmpTarget = target;
            for (int j = i; j < arr.length; j++) {
                if (tmpTarget > arr[j]) {
                    tmpTarget -=  arr[j];
                } else if (tmpTarget == arr[j]) {
                    //说明从i开始arr中存在连续的加起来等于target的一个序列
                    num++;
                    System.out.println(i+"到"+j+"开始的数组存在加起来为target的序列");
                    break;
                } else {
                    System.out.println(i+"开始的数组不存在加起来为target的序列");
                    break;
                }
            }
        }
        return num==0?-1:num;
    }

}
